{
 "cells": [
  {
   "cell_type": "code",
   "execution_count": 3,
   "metadata": {},
   "outputs": [
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "C:\\Python\\lib\\site-packages\\ipykernel_launcher.py:32: DeprecationWarning: object of type <class 'float'> cannot be safely interpreted as an integer.\n"
     ]
    },
    {
     "data": {
      "image/png": "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\n",
      "text/plain": [
       "<Figure size 432x288 with 1 Axes>"
      ]
     },
     "metadata": {
      "needs_background": "light"
     },
     "output_type": "display_data"
    },
    {
     "data": {
      "application/vnd.jupyter.widget-view+json": {
       "model_id": "f5a3641504e74426bd2503fc635435e0",
       "version_major": 2,
       "version_minor": 0
      },
      "text/plain": [
       "interactive(children=(Dropdown(description='elev', index=1, options=(0, 30, 60, 90, 120), value=30), IntSlider…"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    }
   ],
   "source": [
    "#如果放到jupyter notebook中运行\n",
    "from sklearn.svm import SVC\n",
    "import matplotlib.pyplot as plt\n",
    "import numpy as np\n",
    "\n",
    "from sklearn.datasets import make_circles\n",
    "X,y = make_circles(100, factor=0.1, noise=.1)\n",
    "plt.scatter(X[:,0],X[:,1],c=y,s=50,cmap=\"rainbow\")\n",
    "\n",
    "def plot_svc_decision_function(model,ax=None):\n",
    "    if ax is None:\n",
    "        ax = plt.gca()\n",
    "    xlim = ax.get_xlim()\n",
    "    ylim = ax.get_ylim()\n",
    "    \n",
    "    x = np.linspace(xlim[0],xlim[1],30)\n",
    "    y = np.linspace(ylim[0],ylim[1],30)\n",
    "    Y,X = np.meshgrid(y,x) \n",
    "    xy = np.vstack([X.ravel(), Y.ravel()]).T\n",
    "    P = model.decision_function(xy).reshape(X.shape)\n",
    "    \n",
    "    ax.contour(X, Y, P,colors=\"k\",levels=[-1,0,1],alpha=0.5,linestyles=[\"--\",\"-\",\"--\"])\n",
    "    ax.set_xlim(xlim)\n",
    "    ax.set_ylim(ylim)\n",
    "\n",
    "clf = SVC(kernel = \"linear\").fit(X,y)\n",
    "plt.scatter(X[:,0],X[:,1],c=y,s=50,cmap=\"rainbow\")\n",
    "plot_svc_decision_function(clf)\n",
    "\n",
    "r = np.exp(-(X**2).sum(1))\n",
    "\n",
    "rlim = np.linspace(min(r),max(r),0.2)\n",
    "\n",
    "from mpl_toolkits import mplot3d\n",
    "\n",
    "def plot_3D(elev=30,azim=30,X=X,y=y):\n",
    "    ax = plt.subplot(projection=\"3d\")\n",
    "    ax.scatter3D(X[:,0],X[:,1],r,c=y,s=50,cmap='rainbow')\n",
    "    ax.view_init(elev=elev,azim=azim)\n",
    "    ax.set_xlabel(\"x\")\n",
    "    ax.set_ylabel(\"y\")\n",
    "    ax.set_zlabel(\"r\")\n",
    "    plt.show()\n",
    "\n",
    "from ipywidgets import interact,fixed\n",
    "interact(plot_3D,elev=[0,30,60,90,120],azip=(-180,180),X=fixed(X),y=fixed(y))\n",
    "plt.show()"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": null,
   "metadata": {},
   "outputs": [],
   "source": []
  }
 ],
 "metadata": {
  "kernelspec": {
   "display_name": "Python 3",
   "language": "python",
   "name": "python3"
  },
  "language_info": {
   "codemirror_mode": {
    "name": "ipython",
    "version": 3
   },
   "file_extension": ".py",
   "mimetype": "text/x-python",
   "name": "python",
   "nbconvert_exporter": "python",
   "pygments_lexer": "ipython3",
   "version": "3.7.1"
  }
 },
 "nbformat": 4,
 "nbformat_minor": 2
}
